package com.jiulong.common.utils;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import org.jdom.JDOMException;
import com.alibaba.fastjson.JSONObject;
public class HttpUtil {

    //private static final Log logger = Logs.get();
    private final static int CONNECT_TIMEOUT = 5000; // in milliseconds
    private final static String DEFAULT_ENCODING = "UTF-8";

    public static void main(String[] args) throws JDOMException, IOException {

        String code="061guN4l1UoLfi0BWO1l108t4l1guN4t";
        String urlStr="https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx5724e829db23955a&secret=0b23be4dc38ae1b1d37efc4cd488c685&code="+code+"&grant_type=authorization_code";
        System.out.println(urlStr);
        String resXml = HttpUtil.postData(urlStr, null);
        System.out.println("返回xml：：：："+resXml);
        //String urlStr="https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx5724e829db23955a&secret=0b23be4dc38ae1b1d37efc4cd488c685&code=011pCpyz1JjfAe0C6Jwz1Upvyz1pCpyh&grant_type=authorization_code";
        //String test ="{"access_token":"PoCvKVoJsCNZsnpfAs4o8iC6tIV2HMDYAzFjQsT1HbYXKl1lpyXpMA3Xa6c2vr3e6VBVvXJCBzvgNwCD9tURj2Yp2VHbajtVwaMRpO-jDJ8","expires_in":7200,"refresh_token":"9kJ76ABbt58dr9k295FIM2M78vEG8JNzii3V-gI5FsRLSCvPPVqpfy7ug5TBhor1BIp4TiYO71hWN1zn5FMLnNhWHwB-B63DYTNoBFUJRXo","openid":"ohx_wwiIXSM7yFNDcaLymiMeIh8o","scope":"snsapi_userinfo"}"

        JSONObject j=JSONObject.parseObject(resXml);

        String openid=(String) j.get("openid");
        System.out.println(openid);
        System.out.println(j);
        System.out.println(j.get("errcode"));




    }


    public static String postData(String urlStr, String data){
        return postData(urlStr, data, null);
    }

    public static String postData(String urlStr, String data, String contentType){
        BufferedReader reader = null;
        try {
            URL url = new URL(urlStr);
            URLConnection conn = url.openConnection();
            conn.setDoOutput(true);
            conn.setConnectTimeout(CONNECT_TIMEOUT);
            conn.setReadTimeout(CONNECT_TIMEOUT);
            if(contentType != null)
                conn.setRequestProperty("content-type", contentType);
            OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING);
            if(data == null)
                data = "";
            writer.write(data);
            writer.flush();
            writer.close();

            reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), DEFAULT_ENCODING));
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("\r\n");
            }
            return sb.toString();
        } catch (IOException e) {
            //logger.error("Error connecting to " + urlStr + ": " + e.getMessage());
            System.out.println("Error connecting to " + urlStr + ": " + e.getMessage());
        } finally {
            try {
                if (reader != null)
                    reader.close();
            } catch (IOException e) {
            }
        }
        return null;
    }

    //文档中读取数据
    public static    String  outPrint(FileInputStream file) throws IOException{
        StringBuffer result = new StringBuffer();
        BufferedReader buf = new BufferedReader(new InputStreamReader(file));
        String s = null;
        while((s = buf.readLine())!=null){//使用readLine方法，一次读一行
            result.append(System.lineSeparator()+s);
        }

        buf.close();
        return result.toString();
    }
    /**
     * @param result
     * @return
     */
    public static int counts(String result){
        String[] xiakai=result.split("xiakai");
        int finalCount=xiakai.length-1;
        //对末尾是否出现要求字符串进行区分
        String checkXiakai=result.substring(result.length()-6);
        if(checkXiakai.equals("xiakai")){
            return finalCount+1;
        }else{
            return finalCount;
        }
    }
}
